// 通过vue-router插件实现模板路由配置
import { createRouter, createWebHashHistory } from 'vue-router'
import { constantRoute } from './routes';
import useUserStore from "@/store/modules/user";

// 创建路由器实例
let $router = createRouter({
    history: createWebHashHistory(),
    routes: constantRoute as any,
    // 滚动行为
    scrollBehavior() {
        return {
            left: 0,
            top: 0
        }
    }
})

// 路由导航守卫
$router.beforeEach((to, from, next) => {
    console.log("路由：", $router);   

    // 检查将要跳转的根路由元信息是否需要登录验证
    if (to.matched.some(r=>r.meta?.requiresAuth)) {
        // 获取登录验证数据(转换一下能保持useUserStore的响应性)
        const useStore = useUserStore();
        if(!useStore.token) {
            // query的作用是：返回登录后直接跳转到刚才想要进入的路由界面，而不是/home
            next({ name: "login", query: { redirect: to.fullPath } })
            return;
        }
    }
    next();
})

export default $router;